package com.example.sup.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.sup.conttroller.request.DistrictPrisonRequest;
import com.example.sup.conttroller.request.PrisonQueryRequest;
import com.example.sup.conttroller.request.QueryTemperRequest;
import com.example.sup.entity.Prison;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.sup.entity.UserInfo;
import com.example.sup.vo.CompletePrisonVO;
import com.example.sup.vo.PrisonDistrictVO;
import com.example.sup.vo.PrisonQueryPageVO;
import com.example.sup.vo.PrisonTemperatureVO;

import java.util.List;

/**
* @author mac
* @description 针对表【prison(监室表)】的数据库操作Service
* @createDate 2024-07-19 10:05:17
*/
public interface PrisonService extends IService<Prison> {

    /**
     * 查询完整（设备，通道，事件，类型...）列表）的监室数据列表
     * @return
     */
    List<CompletePrisonVO> queryCompletePrisonList(UserInfo userInfo) ;

    /**
     * 查询指定的监室的温度和湿度
     * @param queryTemperRequest    监室id
     * @return
     */
    PrisonTemperatureVO queryTemper(UserInfo userInfo, QueryTemperRequest queryTemperRequest);
    /**
     * 查询指定监区的所有的监室信息列表
     * @param userInfo     登录用户信息
     * @param districtPrisonRequest 请求的监区id对象
     * @return
     */
    List<PrisonDistrictVO> queryPrisonByDistrictId(UserInfo userInfo, DistrictPrisonRequest districtPrisonRequest);

    /**
     * 查询监狱信息并返回分页结果。
     *
     * @param request 请求参数
     * @return 分页查询结果
     */
    Page<PrisonQueryPageVO> queryPrisonInfo(PrisonQueryRequest request);

}
